package ca.ualberta.cs.cmput301f14t14.questionapp.model.serializer;
import java.lang.reflect.Type;
import java.util.UUID;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import ca.ualberta.cs.cmput301f14t14.questionapp.model.Image;
import ca.ualberta.cs.cmput301f14t14.questionapp.model.Question;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonPrimitive;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
/**
* Class used by GSON to serialize Question objects
*/
public class QuestionSerializer implements JsonSerializer<Question> {
@Override
public JsonElement serialize(final Question item, final Type type,
final JsonSerializationContext context) {
final JsonObject object = new JsonObject();
object.addProperty("id", item.getId().toString());
object.addProperty("title", item.getTitle());
object.addProperty("body", item.getBody());
// image - don't know what I'm doing with this yet;
object.addProperty("author", item.getAuthor());
object.add("date", context.serialize(item.getDate()));
object.addProperty("upvotes", item.getUpvotes());
final JsonArray answerList = new JsonArray();
for (UUID aid: item.getAnswerList()) {
final JsonPrimitive answerId = new JsonPrimitive(aid.toString());
answerList.add(answerId);
}
object.add("answers", answerList);
final JsonArray commentList = new JsonArray();
for (UUID cid: item.getCommentList()) {
final JsonPrimitive answerId = new JsonPrimitive(cid.toString());
commentList.add(answerId);
}
object.add("comments", commentList);
return object;
}
}